home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / statcache.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  3KB  |  92 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. '''Maintain a cache of stat() information on files.
  5.  
  6. There are functions to reset the cache or to selectively remove items.
  7. '''
  8. import warnings
  9. warnings.warn('The statcache module is obsolete.  Use os.stat() instead.', DeprecationWarning)
  10. del warnings
  11. import os as _os
  12. from stat import *
  13. __all__ = [
  14.     'stat',
  15.     'reset',
  16.     'forget',
  17.     'forget_prefix',
  18.     'forget_dir',
  19.     'forget_except_prefix',
  20.     'isdir']
  21. cache = { }
  22.  
  23. def stat(path):
  24.     '''Stat a file, possibly out of the cache.'''
  25.     ret = cache.get(path, None)
  26.     if ret is None:
  27.         cache[path] = ret = _os.stat(path)
  28.     
  29.     return ret
  30.  
  31.  
  32. def reset():
  33.     '''Clear the cache.'''
  34.     cache.clear()
  35.  
  36.  
  37. def forget(path):
  38.     '''Remove a given item from the cache, if it exists.'''
  39.     
  40.     try:
  41.         del cache[path]
  42.     except KeyError:
  43.         pass
  44.  
  45.  
  46.  
  47. def forget_prefix(prefix):
  48.     '''Remove all pathnames with a given prefix.'''
  49.     for path in cache.keys():
  50.         if path.startswith(prefix):
  51.             forget(path)
  52.             continue
  53.     
  54.  
  55.  
  56. def forget_dir(prefix):
  57.     '''Forget a directory and all entries except for entries in subdirs.'''
  58.     split = split
  59.     join = join
  60.     import os.path
  61.     prefix = split(join(prefix, 'xxx'))[0]
  62.     forget(prefix)
  63.     for path in cache.keys():
  64.         if path.startswith(prefix) and split(path)[0] == prefix:
  65.             forget(path)
  66.             continue
  67.     
  68.  
  69.  
  70. def forget_except_prefix(prefix):
  71.     """Remove all pathnames except with a given prefix.
  72.  
  73.     Normally used with prefix = '/' after a chdir().
  74.     """
  75.     for path in cache.keys():
  76.         if not path.startswith(prefix):
  77.             forget(path)
  78.             continue
  79.     
  80.  
  81.  
  82. def isdir(path):
  83.     '''Return True if directory, else False.'''
  84.     
  85.     try:
  86.         st = stat(path)
  87.     except _os.error:
  88.         return False
  89.  
  90.     return S_ISDIR(st.st_mode)
  91.  
  92.